home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / bbs / rchat401.zip / RBBSCHAT.DOC < prev    next >
Text File  |  1992-09-14  |  13KB  |  263 lines

  1.  
  2.  
  3.   RBBS-PC Internode chat modifications  Release 4.01    September 14 1992
  4.   Copyright 1989-1992 by John Morris  All Rights Reserved.
  5.  
  6.   Written By:
  7.   John Morris
  8.   TradeWars Software
  9.  
  10.   I can be reached on my BBS:
  11.   The Abandoned Land
  12.   (702)359-1303  Voice  (limited hours..  I work evenings..)
  13.   (702)359-1138  Strictly V32
  14.   (702)359-0629  USR-HST
  15.  
  16.   RBBS-NET 8:919/1 or 2   Fidonet 1:213/760 or 761
  17.  
  18.   Included are files which can be BLED into the current RBBS 17.4 code,
  19.   but it may be a LOT faster just to merge it in by hand. These files are:
  20.  
  21.   RBBSCHAT.DOC      this document
  22.   R-PCCHAT.MRG      to be merged into RBBS-PC.BAS
  23.   RSB2CHAT.MRG      to be merged into RBBSSUB2.BAS
  24.   RSB4CHAT.MRG      to be merged into RBBSSUB4.BAS
  25.   RSB5CHAT.MRG      to be merged into RBBSSUB5.BAS
  26.   R-PCANCH.MRG      Merged into RBBS-PC when using RCHAT with ANSIED.
  27.                     (used in place of R-PCCHAT.MRG)
  28.   RSB2ANCH.MRG      Merged into RBBSSUB2 when using RCHAT with ANSIED.
  29.                     (used in place of RSB2CHAT.MRG)
  30.   RSB4ANCH.MRG      Merged into RBBSSUB4 when using RCHAT with ANSIED.
  31.                     (used in place of RSB4CHAT.MRG)
  32.   RSB5ANCH.MRG      Merged into RBBSSUB5 when using RCHAT with ANSIED.
  33.                     (used in place of RSB5CHAT.MRG)
  34.   RBBS-VAR.MOD      sample include file needed for RCHAT401.BAS
  35.   RBBSANCH.MOD      sample include file needed for RCHAT401 & ANSIED.
  36.   RCHAT401.BAS      Compiled, then added into RBBS-PC.EXE at link time..
  37.   RCSUB401.BAS      Compiled, then added into RBBS-PC.EXE at link time..
  38.   RBBSCHAT.BAT      sample batch file to merge in Chat Mods.
  39.   CHAT.MNU          chat help, a menu list of chat commands.
  40.   CHATC.MNU         color chat menu
  41.   BAS2MOD.ZIP       Converts RBBS-VAR.BAS to RBBS-VAR.MOD, and will also
  42.                     optionally add in global variables into both of those
  43.                     files.
  44.  
  45.   This code is intended to be compiled with QuickBASIC 3.0 or later, mainly
  46.   because I make generous use of block IF..END IF block statements. I also
  47.   don't use a whole lot in the way of line-numbers, which means I use quite
  48.   a few DO..LOOP statements. Since most everyone nowadays is using at least
  49.   QB3, I don't think this will be a problem.
  50.  
  51.   This will one of many releases of this code, and it is my fifth release
  52.   of my internode chat code.  I wanted the ability of the user to page another,
  53.   and I also wanted to see if I could emulate a 'True chat'. I do realize that
  54.   there are quite a few chat products out there in BBS-land, but none follows
  55.   the RBBS tradition of including source code, which means that they have to be
  56.   implemented as doors.
  57.   My logic is that if a system is popular enough to have multiple nodes, it has
  58.   a good file & message bases (doors are generally secondary in multi-node
  59.   systems)  So, why should a guy have to open a door?  Just my humble opinion.
  60.   So anyways, here is the code for you to play with.
  61.  
  62.   You are free to modify the code for implementation in your system, but you
  63.   may not distribute this code in modified form!  If you'd like to see your
  64.   mods incorporated into the official release of this mod, then give me a
  65.   jingle, and I'll happy to talk with you about your mods.
  66.  
  67.   How it's -supposed- to work
  68.   ---------------------------
  69.  
  70.   RCHAT 401 uses another slightly different method of entering the chat mode.
  71.   Previous versions used a separate command, but that was a major kludge.
  72.   RCHAT 401 uses the W)hos on command to start the chat. A much nicer
  73.   interface for the user.
  74.  
  75.   As before, for best performance, and to save where and tear on your
  76.   hard disk, I suggest modifying RCHAT400.BAS where it says:
  77.  
  78.      CONST ChatFileName$ = "H:RBBSCHAT.DEF"
  79.  
  80.   Change that to a RAM drive. For instance, if your RAM drive was drive M,
  81.   you'd change it to:
  82.  
  83.      CONST ChatFileName$ = "M:RBBSCHAT.DEF"
  84.  
  85.   RCHAT 401 attempts to use RBBS-PC's own file/record locking when writing
  86.   to RBBSCHAT.DEF.  Because of the extremely high number of locks and unlocks
  87.   I 'REMarked' out the code which tells you certain files are locked on line
  88.   25.  You will continue to see most of the file locks though.  Most SysOps
  89.   will not even notice this change.
  90.  
  91.   Before you merge things in
  92.   --------------------------
  93.  
  94.   RCHAT401 uses variables which are local to any code in RCHAT401, along
  95.   with the global variables used by RBBS. (Also known as the 'Z' variables)
  96.   Because of this, you must modify your RBBS-VAR.BAS file.  First, you need
  97.   to add the variable:
  98.  
  99.   ZAvailableForChat
  100.  
  101.   to the file. Put it in the file in alphabetical order. (so you remember
  102.   where its at)
  103.  
  104.   To do this use BAS2MOD.EXE like this:
  105.  
  106.   Bas2Mod ZAvailableForChat
  107.  
  108.   Bas2Mod will add the variable ZAvailableForChat to your RBBS-VAR.BAS file
  109.   and also create a RBBS-VAR.MOD file automatically.
  110.  
  111.   All mods are commented with ' RCHAT'  starting at column 70.  If you need
  112.   to put these merges in by hand, then look for lines with the ' RCHAT'
  113.   remarks.
  114.  
  115.   NOTE:  I've included a 17.4 RBBS-VAR.MOD file AS AN EXAMPLE. You may use
  116.   it if you are running a stock 17.4 RBBS-PC.
  117.  
  118.   Using RCHAT with Tom Collin's ANSIED
  119.   ------------------------------------
  120.  
  121.   Right out of the box, RCHAT and ANSIED won't quite work together. In a
  122.   couple of areas the merges for each mod wipe out code the other mod
  123.   needs.  So, I'm providing at alternate set of merges which will help
  124.   you merge RCHAT and ANSIED together easier.  The files are:
  125.  
  126.   xxxxANCH.MRG  where 'xxxx' is the module name.  Use the in place of the
  127.                 regular 'xxxxCHAT.MRG' files for that particular SUB.
  128.                 RBBSSUB3.BAS uses RSB3CHAT.MRG in either case.
  129.  
  130.   These are not guaranteed to work.  These merges are mainly 'mods' to my
  131.   own 'mods' and may not work in the future.  But they have been working
  132.   for almost a year on my system.
  133.  
  134.   I also added a slight mod which will re-enter the ANSI editor if the user
  135.   chooses to E)dit more..
  136.  
  137.   These merges work for RBBS-PC 17.4 and ANSIED 2.44.
  138.  
  139.   You may find ANSIED on any fine RBBS-PC system.  Thanks, Tom!
  140.  
  141.   How to compile and link RCHAT401.BAS and RCSUB401.BAS
  142.   -----------------------------------------------------
  143.  
  144.   I've tried several different ways of compiling RCHAT400. The best way
  145.   is simply to use to the commands:
  146.  
  147.   QB RCHAT400.BAS /O;
  148.   QB RCSUB400.BAS /O/X;
  149.  
  150.   That's it!  And add RCHAT401.OBJ and RCSUB401.OBJ to your list of OBJect
  151.   modules to link together.
  152.  
  153.   Update History:
  154.   ---------------
  155.   02/14/90   First bungled release.. forgot to put CHATHELP into the ZIP
  156.   1.00       file I uploaded to a couple places. Fixed that on my system,
  157.              but a lot of guys missed it.
  158.  
  159.   03/22/90   Second release. Went and added some improvements, and implemented
  160.   2.00       some of Tom Macks ideas for internode chat.  These include
  161.              a way for each user to 'lock-out' a page attempt from other
  162.              nodes. This allows them to roam in privacy.  The option is toggled
  163.              from the (where else?) T)oggle options prompt.
  164.  
  165.              Thanks go out to Cary Kolker for doing something very similar to
  166.              what I was planning for the TrueCh@. Basically to keep some
  167.              systems from dropping chars here-and-there, Cary implemented
  168.              the TrueCh@ in a 'ring buffer' concept.  Adding only about 6
  169.              or 7 lines to the existing code.
  170.  
  171.              Also, I attempted to implement a way to save the node chats to
  172.              disk (as per the SysOps option, check RCHAT300.MRG in the comments
  173.              for info on how to turn this option on.. I didn't wanna screw
  174.              around with CONFIG) I took the following ideas into consideration:
  175.  
  176.              1: Each chat should have its own unique filename.
  177.                 -OR, 1a: would one file be okay??
  178.              2: One node should write the chat to disk to make sure that
  179.                 the text is saved in correct order. And this also keeps
  180.                 the entire chat in the same file.
  181.                 -OR, 2a: would it be okay if each node:
  182.                          a: opened the chat file (in file-locked mode)
  183.                          b: appended its text to the end
  184.                          c: closed the chat file
  185.                      for EACH line typed by EACH node?
  186.              3: Users are told if the SysOp has told the chat mods to save the
  187.                 chat to a file.
  188.  
  189.              Problem with above??:
  190.              ---------------------
  191.              Anyways, Using my ideas (1, 1a, 2 and 2a) there are lots of
  192.              problems to consider.. not being a great programmer I might
  193.              have missed some brilliant idea, but these are problems I see
  194.              with the above:
  195.  
  196.              Ideas 1a and 2a would work fine together, but how would we know
  197.              where one chat starts and/or ends? or does it matter?
  198.  
  199.              Ideas 1 and 2a present another problem, how would each node
  200.              know the unique filename for that chat?
  201.  
  202.              There are more problems, just give it a little thought.
  203.  
  204.              I chose to implement ideas 1 and 2 in this fashion:  The node
  205.              that initiates the chat (in this case one node pages another)
  206.              saves the chat to disk using a unique filename (using time and
  207.              date info).  If another user joins in, that node realizes it has
  208.              not paged, and does try to save anything to disk. What happens
  209.              when nodes are 'squelched'?
  210.  
  211.              Maybe, each chat should have a 'process number' which identifies
  212.              the chat as unique.
  213.  
  214.              Actually, I'm not going to say:  "This is how it works, so live
  215.              with it!"  I'd rather get input from every SysOp who wants to
  216.              contribute and then proceed from there.  How should the above
  217.              ideas be worked out?
  218.  
  219.              In the end, I think that I'll plan each chat as a separate
  220.              'process'. Each process has its own unique name or number, and
  221.              then the chats will be saved according to process number.
  222.  
  223.   08/28/90   Heavily modified the chat code. All chats are now character by
  224.   3.00       character. This works fine even with multiple nodes. A TrueChat
  225.              is now considered a private chat between two nodes, and does
  226.              not have its own separate subroutine. The mod now uses a menu
  227.              system instead of using separate Ctrl-x sequences for each
  228.              'command'  You now type 'Ctrl-Q or ESCape' to get the chat menu,
  229.              and a chat command prompt, and you can then page someone, see
  230.              who is on, etc, from the prompt. To exit back into Chat, you
  231.              simply type C (for Chat) or [ENTER].  The W)hos on section was
  232.              rewritten to tell the user what the other user might be doing.
  233.              For instance, a user might be in Doors, or may be in the message
  234.              system, or in the file system. Whos on will now tell them. If the
  235.              user sees a CITY after the other users name, they are likely
  236.              to be able to page them. The file number used by RCHAT300 was
  237.              changed to 9, becuase I failed to realize that file 7 was used
  238.              by the voice board driver.
  239.  
  240.   06/22/92   Changed the user interface so a user can enter chat when using
  241.   4.00       the W)hos on command.  Changes to work with RBBS 17.4 and
  242.              special merges for use with Tome Collin's ANSIED.
  243.  
  244.   09/14/92   The call in RCHAT400.BAS had a call to Graphic to that it could
  245.   4.01       display a color menu.. Graphics accepts 1 parm..  I had RCHAT
  246.              giving it 2 parms.. never displayed a glitch in the year or
  247.              so that I ran it.. but try compiling it with BC71, and/or
  248.              running it under DV (as some of you tried..) it just doesn't
  249.              work..  Special thanks to Tate Biersack for finding this
  250.              nasty error..
  251.  
  252.  
  253.   Revision numbers for RBBS Chat mods.
  254.   ------------------------------------
  255.   Revision numbers are as follows:  x.yz
  256.                                     x    gets incremented when code is added
  257.                                          or heavily modified.
  258.                                     y    gets incremented on a major bug fix
  259.                                          release
  260.                                     z    gets incremented on a minor fix
  261.  
  262.   End of RBBSChat.doc
  263.